<?php
declare (strict_types = 1);     // 报错等级，1就是所有错误都会报

namespace app\usedb\controller;

use app\BaseController;
use think\facade\Db;
use think\View;

// 新应用控制器一开始没有导入基础控制器，需要extend继承并use导入
class Index extends BaseController
{
    public function index()
    {
        return '您好！这是一个[usedb]示例应用';
    }

    public function select()
    {
        // 查询数据 Db::table('前缀_表名')->select();
        //         Db::name('表名')->select();
        // 返回的是一个结果对象
        // 使用Db类查询 空间命名是think\Db
        // use think\facade\Db 使用静态方法调用

        // table方法设置要操作的表名
        $list = Db::table('zx_xsb')->select();
        dump($list);// 能看到数据库内的信息就是连接查询成功
        $list = Db::name('xsb')->select();     // 直接使用name方法来选择操作的表名，需要先在.env设置前缀prefix = root_
        dump($list);

        //  INNER JOIN: 等同于 JOIN（默认的JOIN类型）,如果表中有至少一个匹配，则返回行
        //  LEFT JOIN: 即使右表中没有匹配，也从左表返回所有的行
        //  RIGHT JOIN: 即使左表中没有匹配，也从右表返回所有的行
        //  FULL JOIN: 只要其中一个表中存在匹配，就返回行

        // field 要提取的字段
        // alias 别名
        $list = Db::name('xsb')
            ->alias('x')    // 设置第一张表的别名x
            ->field('x.*,s.szx as sname')   // x的所有与
            ->leftjoin('zx_szx s', 'x.szx=s.id')
            ->select();
        dump($list);
        View::assign('list', $list);
        return View::fetch();

    }
}
